from partie2 import *


#====Test de la resolution de l'equation du modele de Malthus======#
gamma = 0.007
h = 0.1
t0 = 0
y0 = 30000000
N = 1000
y = malthus(gamma , h , t0 , y0 , N , step_midpoint)#Exemple credible

x=np.linspace(0,100,len(y))
#mal = mp.plot(x,y)
#mp.show()

#====Test de la resolution de l'equation du modele de Verhulst======#
kappa =  400000000
y = verhulst(gamma, kappa, h, t0, y0, N, step_midpoint)
x = np.linspace(0,100,len(y))
#v2 = mp.plot(x,y)
#mp.xlabel("y(t)")
#mp.ylabel("t")
#mp.show()



#====Test de la resolution du systeme de Lotka-Volterra======#        
ylv0 = (500.0 , 25.0)
a=2.5; # taux de reproduction des proies en l absence de predateurs 
b=0.01; # taux de mortalite des proies due aux predateurs 
c=0.01; # taux de reproduction des predateurs en fonction des proies mangees
d=2.5; # taux de mortalite des predateurs en l absence de proies


#====Graphe des solutions en fonction du temps======#  

y = lotka_volterra(a, b, c, d, t0, ylv0, h, N, step_midpoint)

#solution constante:
#y = lotka_volterra(a, b, c, d, t0, np.array([d/c,a/b]), h, N, step_midpoint)

x = np.linspace(0, 100, len(y))
#mp.title("Variation des population des proies et des predateurs en fonction du temps")
#mp.ylabel("y(t)")
#mp.xlabel("t")
#c = mp.plot(x,y)
#mp.legend(c, ("proies" , "predateurs"))
#mp.show()


#====Graphe de variation du couple (N(t),P(t))======#  
#lotka_volterra_2dim(a, b, c, d, t0, ylv0, h,  N, step_midpoint, "b.")
#point singulier(solution constante):
#lotka_volterra_2dim(a, b, c, d, t0, np.array([d/c,a/b]), h, N, step_midpoint, "b.")

#====Graphe de variation du couple (N(t),P(t)) en fonction du temps dans l'espace de dimension 3======#  
#lotka_volterra_3dim(a, b, c, d, t0, ylv0, h,  N, step_midpoint)
#point singulier(solution constante):
#lotka_volterra_3dim(a, b, c, d, t0, np.array([d/c,a/b]), h, N, step_midpoint)



#====Test du calcul de la periode de la solution du systeme de Lotka-Volterra======#        
#print periode(a, b, c, d, t0, ylv0, h, N, step_midpoint)


#====Test de l'affichage des graphes des fonctions solutions du systeme Lotka-Volterra en fonction du temps en faisant varier la condition initiale autour d'une valeur y0======#        
pas = 0.01
diff_max = 0.03

#autour d'un point quelconque:
#local(a, b, c, d, t0, ylv0, h, N, pas, diff_max, step_midpoint)
#autour d'un point singulier:
#local(a, b, c, d, t0, np.array([d/c,a/b]), h, N, pas, diff_max, step_midpoint)

#====Test de l'affichage des graphes de variations du couple (N(t),P(t)) solution du systeme Lotka-Volterra en fonction du temps en faisant varier la condition initiale autour d'une valeur y0======#

#autour d'un point quelconque:
#local_2d(a, b, c, d, t0, ylv0, h, N, pas, diff_max, step_midpoint)
#autour d'un point singulier:
#local_2d(a, b, c, d, t0, np.array([d/c,a/b]), h, N, pas, diff_max, step_midpoint)


